<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>10_代码执行顺序-面试题总览</title>
</head>

<body>

  <script>
    // 面试题一:
    // console.log("Start");

    // setTimeout(() => {
    //   console.log("Macro Task 1");
    // }, 0);

    // setTimeout(() => {
    //   console.log("Macro Task 2");
    // }, 0);

    // Promise.resolve().then(() => {
    //   console.log("Micro Task 1");
    // }).then(() => {
    //   console.log("Micro Task 2");
    // });

    // console.log("End");

    // 面试题二:
    // console.log("script start")

    // setTimeout(function () {
    //   console.log("setTimeout1");
    //   new Promise(function (resolve) {
    //     resolve();
    //   }).then(function () {
    //     new Promise(function (resolve) {
    //       resolve();
    //     }).then(function () {
    //       console.log("then4");
    //     });
    //     console.log("then2");
    //   });
    // });

    // new Promise(function (resolve) {
    //   console.log("promise1");
    //   resolve();
    // }).then(function () {
    //   console.log("then1");
    // });

    // setTimeout(function () {
    //   console.log("setTimeout2");
    // });

    // console.log(2);

    // queueMicrotask(() => {
    //   console.log("queueMicrotask1")
    // });

    // new Promise(function (resolve) {
    //   resolve();
    // }).then(function () {
    //   console.log("then3");
    // });

    // console.log("script end")

    // 面试题三:
    // async function async1() {
    //   console.log('async1 start')
    //   await async2();
    //   console.log('async1 end')
    // }

    // async function async2() {
    //   console.log('async2')
    // }

    // console.log('script start')

    // setTimeout(function () {
    //   console.log('setTimeout')
    // }, 0)

    // async1();

    // new Promise(function (resolve) {
    //   console.log('promise1')
    //   resolve();
    // }).then(function () {
    //   console.log('promise2')
    // })

    // console.log('script end')

  </script>


</body>

</html>